107 research outputs found

    Internalising modified realisability in constructive type theory

    Full text link
    A modified realisability interpretation of infinitary logic is formalised and proved sound in constructive type theory (CTT). The logic considered subsumes first order logic. The interpretation makes it possible to extract programs with simplified types and to incorporate and reason about them in CTT.Comment: 7 page

    Universes in type theory part Iā€”Inaccessibles and Mahlo

    Get PDF

    The Use of Trustworthy Principles in a Revised Hilbertā€™s Program

    Get PDF
    After the failure of Hilbertā€™s original program due to GoĢˆdelā€™s second incompleteness theorem, relativized Hilbertā€™s programs have been sug-gested. While most metamathematical investigations are focused on car-rying out mathematical reductions, we claim that in order to give a full substitute for Hilbertā€™s program, one should not stop with purely mathe-matical investigations, but give an answer to the question why one should believe that all theorems proved in certain mathematical theories are valid. We suggest that, while it is not possible to obtain absolute certainty, it is possible to develop trustworthy core principles using which one can prove the correctness of mathematical theories. Trust can be established by both providing a direct validation of such principles, which is nec-essarily non-mathematical and philosophical in nature, and at the same time testing those principles using metamathematical investigations. We investigate three approaches for trustworthy principles, namely ordinal no-tation systems built from below, Martin-LoĢˆf type theory, and Fefermanā€™s system of explicit mathematics. We will review what is known about the strength up to which direct validation can be provided. 1 Reducing Theories to Trustworthy Principles In the early 1920ā€™s Hilbert suggested a program for the foundation of mathemat-ics, which is now called Hilbertā€™s program. As formulated in [40], ā€œit calls for a formalization of all of mathematics in axiomatic form, together with a proof that this axiomatization of mathematics is consistent. The consistency proof it-self was to be carried out using only what Hilbert called ā€™finitary ā€™ methods. The special epistemological character of finitary reasoning then yields the required justification of classical mathematics. ā€ Because of GoĢˆdelā€™s second incomplete-ness theorem, Hilbertā€™s program can be carried out only for very weak theories

    Programming with monadic CSP-style processes in dependent type theory

    Get PDF
    We introduce a library called CSP-Agda for representing processes in the dependently typed theorem prover and interactive programming language Agda. We will enhance processes by a monad structure. The monad structure facilitates combining processes in a modular way, and allows to define recursion as a direct operation on processes. Processes are defined coinductively as non-well-founded trees. The nodes of the tree are formed by a an atomic one step relation, which determines for a process the external, internal choices, and termination events it can choose, and whether the process has terminated. The data type of processes is inspired by Setzer and Hancock's notion of interactive programs in dependent type theory. The operators of CSP will be defined rather than atomic operations, and compute new elements of the data type of processes from existing ones. The approach will make use of advanced type theoretic features: the use of inductive-recursively defined universes; the definition of coinductive types by their observations, which has similarities to the notion of an object in object-oriented programming; the use of sized types for coinductive types, which allow coinductive definitions in a modular way; the handling of finitary information (names of processes) in a coinductive settings; the use of named types for automatic inference of arguments similar to its use in template Meta-programming in C++; and the use of interactive programs in dependent type theory.We introduce a simulator as an interactive program in Agda. The simulator allows to observe the evolving of processes following external or internal choices. Our aim is to use this in order to simulate railway interlocking system and write programs in Agda which directly use CSP processes

    How to Reason Coinductively Informally

    Get PDF
    We start by giving an overview of the theory of indexed inductively and coinductively defined sets. We consider the theory of strictly positive indexed inductive definitions in a set theoretic setting. We show the equiv-alence between the definition as an indexed initial algebra, the definition via an induction principle, and the set theoretic definition of indexed in-ductive definitions. We review as well the equivalence of unique iteration, unique primitive recursion, and induction. Then we review the theory of indexed coinductively defined sets or final coalgebras. We construct indexed coinductively defined sets set theoretically, and show the equiv-alence between the category theoretic definition, the principle of unique coiteration, of unique corecursion, and of iteration together with bisimula-tion as equality. Bisimulation will be defined as an indexed coinductively defined set. Therefore proofs of bisimulation can be carried out corecur-sively. This fact can be considered together with bisimulation implying equality as the coinduction principle for the underlying coinductively de-fined set. Finally we introduce various schemata for reasoning about coin-ductively defined sets in an informal way: the schemata of corecursion, of indexed corecursion, of coinduction, and of corecursion for coinductively defined relations. This allows to reason about coinductively defined sets similarly as one does when reasoning about inductively defined sets using schemata of induction. We obtain the notion of a coinduction hypothesis, which is the dual of an induction hypothesis.

    Copatterns: programming infinite structures by observations

    Get PDF
    This article which will appear in the proceedings of POPL 2013 in January 2013, introduces the dual of pattern matching, as it is used in functional programming for defining functions, by copatterns. Whereas data types are eliminated by pattern matching, i.e. by giving giving a choice for each constructor, coalgebras are introduced by copatterns, namely by giving the result of each eliminator. Patterns and copatterns are entirely symmetrical. This article introduces a language which allows to define data types, coalgebras, and functions by nested pattern and copattern matching. An operational semantics is introduced, and type soundness and subject reduction is shown

    Coalgebras as Types Determined by Their Elimination Rules

    Get PDF

    An extended predicative definition of the Mahlo universe

    Get PDF
    This article, which will be reviewed by Zentralblatt Math, contains the first predicative definition of the Mahlo universe, by extending the concept of predicativity. This is a break through result, since it introduces a methodology which allows to justify proof theoretically much stronger theories than were known before predicatively.Before this article predicativity was limited to inductive recursive definition, and it was widely believed that it is impossible to go beyond that notion in a predicative way. With this article for the first time this barrier has been passed using a novel approach

    Interactive Programs and Weakly Final Coalgebras in Dependent Type Theory (Extended Version)

    Get PDF
    We reconsider the representation of interactive programs in dependent type theory that the authors proposed in earlier papers. Whereas in previous versions the type of interactive programs was introduced in an ad hoc way, it is here defined as a weakly final coalgebra for a general form of polynomial functor. The are two versions: in the first the interface with the real world is fixed, while in the second the potential interactions can depend on the history of previous interactions. The second version may be appropriate for working with specifications of interactive programs. We focus on command-response interfaces, and consider both client and server programs, that run on opposite sides such an interface. We give formation/introduction/elimination/equality rules for these coalgebras. These are explored in two dimensions: coiterative versus corecursive, and monadic versus non-monadic. We also comment upon the relationship of the corresponding rules with guarded induction. It turns out that the introduction rules are nothing but a slightly restricted form of guarded induction. However, the form in which we write guarded induction is not recursive equations (which would break normalisation -- we show that type checking becomes undecidable), but instead involves an elimination operator in a crucial way
    • ā€¦
    corecore